<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:f="http://java.sun.com/jsf/core">
     <style>       
            .row1{ 
                background: #043f52;
 
    </style>
    <body>

        <ui:composition template="./plantilla/plantilla.xhtml">
            
            
        <ui:define name="center">
            <div class="h_title">Lista de Docentes</div>
            <h:form id="form">
            <div align="center" style="background-color: white" >
                    <p:growl id="growl" showDetail="true"  />
                    <p:panel id="panellista" style="font-size:small;margin: auto">
                    <p:dataTable id="listas" var="lista" value="#{docenteController.lista}" 
                             filterDelay="50"                             
                             paginator="true" rows="15"  rendered="true"
                             paginatorPosition="bottom"
                             style="width: 100%; font-size: 15px;" 
                             rowStyleClass="#{rowIndex mod 2 ne 0 ? 'row1' : 'null'}"
                             rowIndexVar="rowIndex"
                             resizableColumns="true" scrollWidth="true"
                             
                             >                    
                    <p:column  style="width:35px">
                        <f:facet name="header">
                            <h:outputText value="Codigo"  />
                        </f:facet>
                        <h:outputText value="#{lista.VCodigo} " />
                         
                    </p:column>  

                    <p:column  filterBy="##{lista.NPrsId.VNombre}" style="width:20%" filterMatchMode="contains">
                        <f:facet name="header">
                            <h:outputText value="Nombre"  />
                        </f:facet>
                        <h:outputText value="#{lista.NPrsId.VNombre},#{lista.NPrsId.VApellidos}" style="color:#043f52"/>     
                    </p:column>
                    
                    
                    
                    <p:column  style="width:20%">
                        <f:facet name="header">
                            <h:outputText value="Email"  />
                        </f:facet>
                        <h:outputText value="#{lista.NPrsId.VEmail}" style="color:#043f52"/>     
                    </p:column>
                    
                    
                    
                    <p:column style="width:14px">  
                        <p:commandButton id="editar" update=":form :formEditar:paneleditar" onclick="dialogeditar.show()" icon="ui-icon-pencil" style="font-size:10px">  
                            <f:setPropertyActionListener value="#{lista}" target="#{docenteController.docenteseleccionado}" />  
                        </p:commandButton>  
                    </p:column>
                    
                    <p:column style="width:14px">  
                        <p:commandButton id="eliminar" update=":form :formEliminar:paneleliminar" onclick="dialogeliminar.show()" icon="ui-icon-circle-close" style=" font-size:10px">
                            <f:setPropertyActionListener value="#{lista}" target="#{docenteController.docenteseleccionado}" />
                        </p:commandButton>  
                    </p:column>
                        
                    <p:column style="width:14px">  
                        <p:commandButton id="disponnibilidad" update=":form :formDisponibilidad:paneldisponibilidad" onclick="dialogdisponibilidad.show()" icon="ui-icon-document" style=" font-size:10px">
                            <f:setPropertyActionListener value="#{lista}" target="#{docenteController.docenteseleccionado}" />
                        </p:commandButton>  
                    </p:column>    
                    
                    <p:column style="width:14px">  
                        <p:commandButton id="docenteclases" update=":form :formDocenteclases:paneldocenteclases" onclick="dialogdocenteclases.show()" icon="ui-icon-person" style=" font-size:10px">
                            <f:setPropertyActionListener value="#{lista}" target="#{docenteController.docenteseleccionado}" />
                        </p:commandButton>  
                    </p:column> 

                </p:dataTable>
                <h:panelGrid columns="4" cellpadding="4">
  
                    <p:commandButton id="nuevo" value="Nuevo" update=":form :formNuevo:panelnuevo" 
                                 onclick="dialognuevo.show()"
                                 style="font-size: 10px"
                                ajax="true"
                                />                                             
                    </h:panelGrid>
                    </p:panel>
            </div>
            </h:form>
            
            <h:form id="formEliminar">
                <p:dialog id="dialogoeliminar" widgetVar="dialogeliminar"  width="350" height="120" 
                                           resizable="false" showEffect="clip" hideEffect="clip" modal="true" 
                                           style="font-size: x-small; position:absolute; top:15% ; left:20%; ">
                    <p:panel id="paneleliminar" style="font-size:small;margin: auto">
                        <h:outputText value="¿Esta Seguro que desea eliminar al Docente?"/><br></br><br></br>
                        <h:outputText value="#{docenteController.docenteseleccionado.NPrsId.VNombre} #{docenteController.docenteseleccionado.NPrsId.VApellidos}"/><br></br><br></br>
                        <p:commandButton id="opereliminar1" value="SI"
                                      update=":form:listas , :form:growl" ajax="true"
                                      style="font-size: 10px"
                                      actionListener="#{docenteController.eliminar()}"             
                                      
                                      onclick="dialogeliminar.hide()"/>
                        <p:commandButton id="opereliminar2" value="NO"                              
                                      style="font-size: 10px"        
                                      update=":form:listas " ajax="true"
                                      onclick="dialogeliminar.hide()"/> 
                            
                    </p:panel>     
                </p:dialog>
            </h:form>
            
            <h:form id="formEditar" >
                <p:dialog id="dialogoeditar" header="Editar Docente" widgetVar="dialogeditar" 
                resizable="false" style="position:absolute; top:15% ; left:20%;" modal="true"
                width="450" showEffect="clip" hideEffect="fold" >  
                    
                    <h:panelGrid id="paneleditar" columns="2" cellpadding="4" >
                        <h:outputLabel value="Nombre:"  styleClass="colum"/>
                        <p:inputText 
                            value="#{docenteController.docenteseleccionado.NPrsId.VNombre}"
                                    required="true" >
                            <f:validateLength minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel value="Apellidos:"  styleClass="colum"/>
                        <p:inputText 
                            value="#{docenteController.docenteseleccionado.NPrsId.VApellidos}"
                                    required="true" >
                            <f:validateLength minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel value="Email:"  styleClass="colum"/>
                        <p:inputText 
                            value="#{docenteController.docenteseleccionado.NPrsId.VEmail}"
                                    required="true" >
                            <f:validateLength minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel value="Codigo:"  styleClass="colum"/>
                        <p:inputText 
                            value="#{docenteController.docenteseleccionado.VCodigo}"
                                    required="true" >
                            <f:validateLength minimum="1"/>
                        </p:inputText>
                        <p:outputLabel value="Categoria:" styleClass="colum"/>
                        <p:selectOneMenu  value="#{docenteController.categoriaxdefecto}" effect="fold" required="true">          
                            <f:selectItems value="#{docenteController.itemsCategoriasSelectOne}"/>                        
                        </p:selectOneMenu>
                        
                        <p:commandButton id="botoneditar" value="Aceptar"    
                                         actionListener="#{docenteController.editar}"
                                         update=":form:listas" ajax="true"                         
                                         style="font-size: 10px"
                                         onclick="dialogeditar.hide()"
                                         >
                            
                        </p:commandButton>
           
                            
                    </h:panelGrid>
                   
                </p:dialog>
                </h:form>
                <h:form id="formNuevo" >      
                <p:dialog id="dialogonuevo" header="Registro de Nuevo Docente" widgetVar="dialognuevo" 
                resizable="false" style="position:absolute; top:15% ; left:20%;" modal="true"
                width="500" showEffect="clip" hideEffect="fold" >  

                    <h:panelGrid id="panelnuevo" columns="2" cellpadding="4" >
                        <h:outputLabel value="Nombre:"  styleClass="colum"/>
                        <p:inputText value="#{docenteController.personanuevo.VNombre}"  >
                            
                        </p:inputText>                       
                        <h:outputLabel value="Apellidos:"  styleClass="colum"/>
                        <p:inputText  value="#{docenteController.personanuevo.VApellidos}"  >
                            
                        </p:inputText>                     
                        <h:outputLabel value="Email:"  styleClass="colum"/>
                        <p:inputText value="#{docenteController.personanuevo.VEmail}"  >
                          
                        </p:inputText>
                        <h:outputLabel value="Codigo:"  styleClass="colum"/>
                        <p:inputText value="#{docenteController.docentenuevo.VCodigo}" >
                            
                        </p:inputText>
                        
                        <p:outputLabel value="Categoria:" styleClass="colum"/>
                        <p:selectOneMenu  value="#{docenteController.categoriaseleccionada}" effect="fold" required="true">          
                            <f:selectItems value="#{docenteController.itemsCategoriasSelectOne}"/>                        
                        </p:selectOneMenu>
                        <h:outputText value="Usuario: " />
                        <p:inputText  id="usuario" value="#{docenteController.personanuevo.VLogin}" />
                        <h:outputText value="Contraseña: " />                      
                        <p:password id="clave" value="#{docenteController.personanuevo.VPassword}" />
                        <p:commandButton id="botoneditar" value="Aceptar"    
                                         actionListener="#{docenteController.nuevo}"
                                         update=":form:listas" ajax="true"                         
                                         style="font-size: 10px"
                                         onclick="dialognuevo.hide()"
                                         >
                            
                        </p:commandButton>
           
                            
                    </h:panelGrid>  
                </p:dialog>
                </h:form>
            
            
            <h:form id="formDisponibilidad" >
                <p:growl id="messages" showDetail="true"/>
                <p:contextMenu for="dialogodisponibilidad" widgetVar="cMenu">   
                    <p:menuitem value="Edit Cell" icon="ui-icon-search" onclick="PF('dialogdisponibilidad').showCellEditor();return false;"/>  
                    <p:menuitem value="Hide Menu" icon="ui-icon-close" onclick="PF('cMenu').hide()"/>  
                </p:contextMenu> 

                <p:dialog id="dialogodisponibilidad" header="Registro de Disponibilidad Docente" widgetVar="dialogdisponibilidad" 
                resizable="false" style="position:absolute; top:15% ; left:20%;" modal="true"
                width="800" showEffect="clip" hideEffect="fold" >  
                    <p:panel id="paneldisponibilidad" style="font-size:small;margin: auto">
                        <h:outputText value="#{docenteController.docenteseleccionado.NPrsId.VApellidos} , #{docenteController.docenteseleccionado.NPrsId.VNombre}" style="font-weight: bold; font-size: 15px"/>
                    
                    <p:dataTable id="listadisponibilidad" var="lista" value="#{docenteController.listaHorario}" editable="true" editMode="cell" widgetVar="listas" 
                    rowIndexVar="rowIndex">
                                  
                        <p:ajax event="cellEdit" listener="#{docenteController.onCellEdit}" update=":formDisponibilidad:messages" />
                        
                        <p:column headerText="Periodo" style="width:15%">
                                <h:outputText value="#{lista}" />
                        </p:column>
                        
                        <p:column headerText="Lunes" style="width:15%">
                                
                            <p:cellEditor>
                                
                                <f:facet name="output"><h:outputText value="#{docenteController.m[rowIndex][0] eq '0'? '': 'XXX'}"/></f:facet>  
                                        <f:facet name="input">
                                            <h:selectOneMenu  id="idlunes" value="#{docenteController.m[rowIndex][0]}" style="width: 100%">
                                            <f:selectItem itemLabel="Disponible" itemValue="1" />  
                                            <f:selectItem itemLabel="No Disponible" itemValue="0" />  
                                            </h:selectOneMenu>
                                        </f:facet>
                            </p:cellEditor> 
                        </p:column>
                        
                        <p:column headerText="Martes" style="width:15%">
                                
                            <p:cellEditor>
                                
                                        <f:facet name="output"><h:outputText value="#{docenteController.m[rowIndex][1] eq '0'? '': 'XXX'}" /></f:facet>  
                                        <f:facet name="input">
                                            <h:selectOneMenu  id="idmartes" value="#{docenteController.m[rowIndex][1]}" style="width: 100%">
                                            <f:selectItem itemLabel="Disponible" itemValue="1" />  
                                            <f:selectItem itemLabel="No Disponible" itemValue="0" />  
                                            </h:selectOneMenu>
                                        </f:facet>
                            </p:cellEditor> 
                        </p:column>
                        
                        <p:column headerText="Miercoles" style="width:15%">
                                
                            <p:cellEditor>
                                
                                        <f:facet name="output"><h:outputText value="#{docenteController.m[rowIndex][2] eq '0'? '': 'XXX'}" /></f:facet>  
                                        <f:facet name="input">
                                            <h:selectOneMenu  id="idmiercoles" value="#{docenteController.m[rowIndex][2]}" style="width: 100%">
                                            <f:selectItem itemLabel="Disponible" itemValue="1" />  
                                            <f:selectItem itemLabel="No Disponible" itemValue="0" />  
                                            </h:selectOneMenu>
                                        </f:facet>
                            </p:cellEditor> 
                        </p:column>
                        
                        <p:column headerText="Jueves" style="width:15%">
                                
                            <p:cellEditor>
                                
                                        <f:facet name="output"><h:outputText value="#{docenteController.m[rowIndex][3] eq '0'? '': 'XXX'}" /></f:facet>  
                                        <f:facet name="input">
                                            <h:selectOneMenu  id="idjueves" value="#{docenteController.m[rowIndex][3]}" style="width: 100%">
                                            <f:selectItem itemLabel="Disponible" itemValue="1" />  
                                            <f:selectItem itemLabel="No Disponible" itemValue="0" />  
                                            </h:selectOneMenu>
                                        </f:facet>
                            </p:cellEditor> 
                        </p:column>
                        
                        <p:column headerText="Viernes" style="width:15%">
                                
                            <p:cellEditor>
                                
                                        <f:facet name="output"><h:outputText value="#{docenteController.m[rowIndex][4] eq '0'? '': 'XXX'}" /></f:facet>  
                                        <f:facet name="input">
                                            <h:selectOneMenu  id="idviernes" value="#{docenteController.m[rowIndex][4]}" style="width: 100%">
                                            <f:selectItem itemLabel="Disponible" itemValue="1" />  
                                            <f:selectItem itemLabel="No Disponible" itemValue="0" />  
                                            </h:selectOneMenu>
                                        </f:facet>
                            </p:cellEditor> 
                        </p:column>
                        
                        <p:column headerText="Sabado" style="width:15%">
                                
                            <p:cellEditor>
                                
                                        <f:facet name="output"><h:outputText value="#{docenteController.m[rowIndex][5] eq '0'? '': 'XXX'}" /></f:facet>  
                                        <f:facet name="input">
                                            <h:selectOneMenu  id="idsabado" value="#{docenteController.m[rowIndex][5]}" style="width: 100%">
                                            <f:selectItem itemLabel="Disponible" itemValue="1" />  
                                            <f:selectItem itemLabel="No Disponible" itemValue="0" />  
                                            </h:selectOneMenu>
                                        </f:facet>
                            </p:cellEditor> 
                        </p:column>  
                    </p:dataTable>
                    <p:panelGrid columns="1" style="margin: auto">
                        <p:commandButton id="botoneditar" value="Guardar"    
                                            actionListener="#{docenteController.actualizardisponibilidad}"
                                            update=":form:listas" ajax="true"                         
                                            style="font-size: 10px"
                                            onclick="dialogdisponibilidad.hide()"
                                            >
                            </p:commandButton>
                    </p:panelGrid>
                    </p:panel>
                </p:dialog>
                </h:form>
                
            <h:form id="formDocenteclases" >      
                <p:dialog id="dialogodocenteclases" header="Registro de Docente por Clase" widgetVar="dialogdocenteclases" 
                resizable="false" style="position:absolute; top:15% ; left:20%;" modal="true"
                width="600" showEffect="clip" hideEffect="fold" >  
                    
                    <h:outputText value="#{docenteController.docenteseleccionado.NPrsId.VNombre}" />
                    
                    <h:panelGrid id="paneldocenteclases" columns="3" cellpadding="6" style="width: 100%">
                        <h:outputLabel value="Facultad" styleClass="colum"/>
                        <h:outputLabel value=":"  styleClass="colum"/>
                        <p:selectOneMenu id="smnFacultad" effect="fold"
                            value="#{direccionEscuelaController.NFctId}"
                            valueChangeListener="#{planEstudiosController.updateValor()}"
                            required="true" >
                            <f:selectItem itemLabel="Seleccione" itemValue="0" />    
                            <f:selectItems value="#{facultadController.itemsFacultadSelectOne}"/>
                            <p:ajax update="smnDirEscuela, smnPlanEstudios, smnAsignatura">
                            </p:ajax>
                        </p:selectOneMenu>
                        
                        <h:outputLabel value="Dir. de Escuela" styleClass="colum"/>
                        <h:outputLabel value=":" styleClass="colum"/>
                        <p:selectOneMenu  id="smnDirEscuela"
                            valueChangeListener="#{asignaturaController.updateValor()}"
                            value="#{planEstudiosController.NDrcEscId}" effect="fold" 
                            disabled="#{direccionEscuelaController.enabled}" >
                            <f:selectItem itemLabel="Seleccione" itemValue="0" />    
                            <f:selectItems value="#{direccionEscuelaController.itemsDirEscuelaSelectOne}"/>                        
                            <p:ajax update="smnPlanEstudios, smnAsignatura">                                
                            </p:ajax>
                        </p:selectOneMenu>
                        
                        <h:outputLabel value="Plan de Estudios" styleClass="colum"/>
                        <h:outputLabel value=":" styleClass="colum"/>
                        <p:selectOneMenu  value="#{asignaturaController.NPlnCrrId}"
                            id="smnPlanEstudios" effect="fold" required="true" 
                            disabled="#{direccionEscuelaController.NFctId eq '0' ? true : planEstudiosController.enabled}">
                            <f:selectItem itemLabel="Seleccione" itemValue="0" />
                            <f:selectItems value="#{planEstudiosController.itemsPlanCurricularSelectOne}"/>
                            <p:ajax update="smnAsignatura">       
                            </p:ajax>
                        </p:selectOneMenu>                                                              
                        
                        <h:outputLabel value="Asignatura" styleClass="colum"/>
                        <h:outputLabel value=":" styleClass="colum"/>
                        <p:selectOneMenu  id="smnAsignatura" value="#{claseController.NAsgId}" 
                            disabled="#{planEstudiosController.NDrcEscId eq '0' ? true : asignaturaController.enabled}"
                            effect="fold" required="true" filter="true">
                            <f:selectItem itemLabel="Seleccione" itemValue="0" />
                            <f:selectItems value="#{asignaturaController.itemsAsignaturaSelectOne}"/>                            
                        </p:selectOneMenu>                                                
                                                
                        <h:outputLabel value="Tipo de Dictado" styleClass="colum"/>
                        <h:outputLabel value=":" styleClass="colum"/>
                        <p:selectOneMenu  value="#{claseController.VTipoDictado}" 
                            id="smnTipoDictado" effect="fold" required="true" >
                            <f:selectItem itemLabel="Seleccione" itemValue="0" />
                            <f:selectItems value="#{modalidadDictadoController.itemsModalidadDictadoSelectOne}"/>
                        </p:selectOneMenu>
                        
                        <p:commandButton id="btnBuscar" value="Buscar"    
                            actionListener="#{docenteController.buscardocentexclase()}"
                            update="paneldocentes" ajax="true"                         
                            style="background:#043f52;color:white;float:right;">                            
                        </p:commandButton>
                        
                        </h:panelGrid>  
                        
                        <div align="center" style="background-color: white" >
                            <p:panel id="paneldocentes">
                                <p:dataTable id="listadocentexclase" var="lista" value="#{docenteController.listadocentexclase}" 

                                        paginator="true" rows="10"  rendered="true"
                                        paginatorPosition="bottom"
                                        style="width: 100%; font-size: 15px;" 
                                        rowStyleClass="#{rowIndex mod 2 ne 0 ? 'row1' : 'null'}"
                                        rowIndexVar="rowIndex"
                                        resizableColumns="true" scrollWidth="true"
                                        >  

                                <f:facet name="header" >
                                    <h:outputText value="Lista de DocentesxClase" />

                                </f:facet>  

                                <p:column  style="width:35px">
                                    <f:facet name="header">
                                        <h:outputText value="Asignatura"  />
                                    </f:facet>
                                    <h:outputText value="#{lista.NClsId.NAsgId.VNombre} " />

                                </p:column>  

                                <p:column  style="width:20%">
                                    <f:facet name="header">
                                        <h:outputText value="Modalidad de Dictado"  />
                                    </f:facet>
                                    <h:outputText value="#{lista.NClsId.NMdlDctId.VNombre}" style="color:#043f52"/>     
                                </p:column>



                                <p:column  style="width:20%">
                                    <f:facet name="header">
                                        <h:outputText value="Docente"  />
                                    </f:facet>
                                    <h:outputText value="#{lista.NDcnId.NPrsId.VNombre}" style="color:#043f52"/>     
                                </p:column>

                            </p:dataTable>
                            <h:panelGrid columns="4" cellpadding="4">

                                <p:commandButton id="nuevo" value="Nuevo" update=":form :formNuevo:panelnuevo" 
                                            onclick="dialognuevo.show()"
                                            style="font-size: 10px"
                                            ajax="true"
                                            />                                             
                                </h:panelGrid>
                        </p:panel>        
                    </div>
                        
           
                            
                    
                </p:dialog>
                </h:form>
            
            
	</ui:define>
        </ui:composition>

    </body>
</html>